1. Field of the Invention
The present invention relates to a method for transferring isochronous data and an apparatus therefor, and more particularly, to a method for transferring variable isochronous data using the IEEE 1394 standard.
2. Description of the Related Art
It is possible to transfer data at a high speed by the IEEE 1394 serial bus. It is also possible to perform real time data transfer for a multimedia application by the IEEE 1394 bus. FIG. 1 shows the cycle configuration of the IEEE 1394 bus according to a conventional technology. In the IEEE 1394 bus, the maximum bandwidth of an isochronous transfer phase (100 xcexcs) and the minimum bandwidth of an asynchronous transfer phase (25 xcexcs) are specified in the P-1 394 specification. In general, isochronous transfer is used for real time data transfer and asynchronous transfer is used for data transfer for various commands such as reproduction, rewind, pause, and change of channels. Therefore, the maximum bandwidth of an entire isochronous cycle (125 xcexcs) is specified.
FIG. 2 shows the gap timing of the IEEE 1394 bus according to a conventional technology. Referring to FIG. 2, isochronous packets, to which an arbitration bit, a data prefix bit, and a data end bit are added, are transferred with isochronous gaps interleaved therebetween. An acknowledge packet which indicates acknowledgement of a request, can be transferred after an acknowledge gap.
In order to explain the isochronous transfer of a packet having the above gap timing, the main steps of a method of assigning isochronous bandwidth in the IEEE 1394 bus according to the conventional technology are shown in FIG. 3. A node which manages the IEEE 1394 bus can be an isochronous resouce manager (IRM), according to a control situation. The node which becomes the IRM includes a bandwidth available (BA) register which manages isochronous resources, in a control and status register (CSR) defined by the IEEE 1394 bus standard. Other nodes in the IEEE 1394 bus read the value of the BA register of the IRM in order to perform an isochronous transfer. Then, it is determined whether there is bandwidth to be assigned and the isochronous transfer is performed when there is bandwidth to be assigned. At this time, the entire available bandwidth is generally assigned in a process of assigning the bandwidth. However, the entire assigned bandwidth is not used in a real isochronous transfer process. Also, in the IEEE 1394 bus, the bandwidth is assigned, assuming that transfer, according to a corresponding application of a node, is in the form of a constant bit rate (CBR) of an asynchronous transfer mode (ATM). Therefore, when the transfer is in the form of a variable bit rate, residual bandwidth results. For example, applications using the IEC-61833 standard are given much weight in the IEEE 1394 applications. In the isochronous transfer method for audio/video devices according to the IEC-61833 standard, it is specified that only a header is transferred to a corresponding isochronous cycle when there is no data to be transferred. As a result, in such a case, the entire assigned bandwidth is not used, and there are cases where only necessary data is transferred only when necessary in order to prevent the repeated transfer of data and to facilitate the controlling of a buffer. Thus, pertinent all, the assigned bandwidth is not used.
FIG. 4 shows the relationship between the assignment of bandwidth and the use of bandwidth in the IEEE 1394 bus according to the conventional technology. Referring to FIG. 4, the horizontal axis shows the degree of the use of an isochronous channel and the vertical axis shows bandwidth available. Since the assigned bandwidth increases as the use of the channel increases, free bandwidth is relatively reduced. However, since the entire assigned bandwidth is not used during the real isochronous transfer as mentioned above, residual bandwidth is generated as shown in FIG. 4. Therefore, in the method for transferring the isochronous data according to the conventional technology, the bandwidth is not effectively used. Also, no more bandwidth can be assigned although there is bandwidth which can be used after a break point.
It will now be explained how isochronous and asynchronous transfer modes supported in the 1394 bus are distinguished from each other and how the channels and bandwidth used for the isochronous transfer are managed. Also, the transfer service of the isochronous transfer mode of the 1394 bus will be simply compared with the transfer service of the asynchronous transfer mode (ATM).
The 1394 bus provides two transfer modes, namely, an isochronous transfer mode and an asynchronous transfer mode. In isochronous transfer, one packet can be transferred every isochronous cycle of 125 xcexcs to provide real-time transfer. Meanwhile, in the asynchronous transfer, which is a transfer mode where data transfer is guaranteed, the data transfer is controlled by a fairness interval where all connected modes can transfer data only once in the interval. Isochronous and asynchronous data are transferred for one isochronous cycle, which is started by the cycle start packet transferred from a root node. The isochronous transfer is prior to the asynchronous transfer. However, in order to prevent a situation where the asynchronous transfer can not be performed at all due to the isochronous transfer, only 80% of the entire cycle can be used for the isochronous transfer. Namely, at least 20% of the entire cycle can be used for the asynchronous transfer. If the isochronous transfer does not exist, the entire cycle can be used for the asynchronous transfer.
As shown in Table 1, asynchronous read and write, asynchronous broadcast write, and asynchronous stream channel which is newly defined in the P1394a specification can be used in the ATM. Here, guaranteed delivery of data through an identification process can be performed only by the asynchronous read and write.
Channels and bandwidth of the IEEE 1394 bus are respectively assigned using the values of two registers, CHANNELS_AVAILABLE (CA) and BANDWIDTH_AVAILABLE (BA) of the IRM which are determined after resetting the bus. The channels and bandwidth must be previously assigned from the IRM to an application wherein isochronous transfer of data is desired to be performed using asynchronous lock transaction in order to maintain integrity of resource information. Accordingly, a concerned node can transfer data of an assigned bandwidth using the assigned channels and bandwidth regardless of whether other nodes use the bus. Namely, it can be considered as using an additional physical channel having a bandwidth as large as the assigned bandwidth. Since the assignment unit of the isochronous bandwidth is calculated using the time taken to send 1 quadlet of 4 bytes in S1600 (1.6 Gbps) specification, the initial value of the BA register becomes 4915. The value four times the value read from the BA must be assigned as a bandwidth assignment value in S400 specification. In the case of the asynchronous stream service defined in the P1394a standard, channels are used like in the isochronous service, however, the bandwidth is not assigned. Therefore, the asynchronous stream service cannot be used for real-time transfer.
The largest difference between the 1394 transfer and the ATM transfer lies in the sizes of transfer units. A packet having a variable size where the maximum size of the transfer unit is determined in proportion to transfer speed is used in the 1394 transfer. Meanwhile, a cell having a fixed size of 53 bytes is used as the transfer unit for high speed processing in the ATM transfer. Another difference lies in that a transfer line to which a switch is connected can be controlled in the ATM transfer and that the use of the bus by other nodes cannot be directly controlled in the 1394 transfer. It is difficult to effectively use the bandwidth, maintaining uniform transfer ability and characteristics when the 1394 transfer is used together with the ATM transfer due to basic differences. Therefore, a method of decreasing such differences must be provided. The IEEE 1394 specification is similar to the Ethernet, which is widely used as a LAN, excluding the isochronous transfer function. The transfer characteristic of the 1394 transfer is simply compared with the transfer characteristic of the ATM transfer in Table 2.
The QOS characteristic of the ATM transfer is shown in Table 3.
As shown in Table 3, there are four services, CBR, VBR, ABR, and UBR in the ATM transfer service as shown in Table 3. Real-time transfer can be performed by the services, CBR and VBR among these services.
However, the isochronous transfer of the IEEE 1394 corresponds to the CBR service for processing data having a specific bit rate in view of the ATM. The asynchronous transfer, where delivery by the best-effort is assumed, is similar to the UBR service of the ATM, excluding the guaranteed delivery characteristic. For example, the bandwidth of the ATM is first assigned to the CBR and VBR services and the remaining bandwidth is assigned to the ABR and UBR services. The ABR service has the characteristics of both the VBR and UBR services. As a result, according to the conventional 1394 standard, the VBR and ABR services of the ATM are not properly supported.
To solve the above problem, it is an object of the present invention to provide a variable isochronous data transfer method for transferring isochronous data using residual bandwidth, which is not used for the transfer of isochronous data, among assigned channels.
It is another object of the present invention to provide a variable isochronous data transfer apparatus for realizing the above method.
It is another object of the present invention to provide a variable isochronous data transfer method for transferring isochronous data using residual bandwidth, which is not used for the transfer of isochronous data, among assigned channels and supporting a variable bit rate corresponding to an ABR service.
It is another object of the present invention to provide a variable isochronous data transfer apparatus for realizing the above method.
It is another object of the present invention to provide a variable isochronous data transfer method for transferring isochronous data using residual bandwidth, which is not used for the transfer of isochronous data, among assigned channels, supporting a variable bit rate corresponding to an ABR service, and performing real time transfer.
It is another object of the present invention to provide a variable isochronous data transfer apparatus for realizing the above method.
Accordingly, to achieve the first object, there is provided a variable isochronous data transfer method for transferring data of a predetermined time interval within a predetermined time on the IEEE 1394 bus, comprising a detection step of indicating that there is residual bandwidth, which is not used for the transfer of isochronous data, among assigned bandwidth, and detecting residual gaps having a predetermined time interval and a variable isochronous transfer step of determining whether bandwidth for isochronous transfer of data remains when the residual gap is detected in the detection step and transferring the isochronous data according to determination result. The time interval of the residual gap detected in the detection step is larger than an isochronous gap and smaller than a subaction gap.
Also, the variable isochronous transfer step comprises a first detection step of detecting an isochronous reset gap and a second determination step of determining whether there is enough residual bandwidth in which to perform the isochronous transfer of data when the isochronous reset gap is detected in the first detection step. Also, the variable isochronous transfer step comprises a step of transferring an isochronous packet when it is determined that there is enough residual bandwidth in the second determination step and a second detection step of detecting an isochronous reset gap, returning the process to the second determination step when the isochronous reset gap is detected, and proceeding the process to an asynchronous phase when the isochronous reset gap is not detected.
Also, the variable isochronous data transfer method according to the present invention preferably further includes a first determination step of determining whether the transfer of data is performed in the current isochronous reset gap when the isochronous reset gap is detected in the first detection step. The second determination step preferably further comprises a step of determining whether there is enough residual bandwidth in which to perform the isochronous transfer when it is determined that there is no transfer of data in the first determination step.
In order to achieve the second object, there is provided a variable isochronous data transfer apparatus according to the present invention for transferring data of predetermined bandwidth within a predetermined time on the IEEE 1394 bus, including means for indicating that there is residual bandwidth which is not used for the transfer of the isochronous data in the assigned bandwidth and for detecting a residual gap having a predetermined time interval, and variable isochronous transfer means for determining whether bandwidth for the isochronous transfer of data remains when the residual gap is detected by the detection means and transferring the isochronous data according to the determination result.
The residual gap detection means comprises a clock signal generator for outputting a clock signal of a predetermined period, an idle detector for detecting an idle state, a counter for digitizing the clock signal in response to the clock signal output from the clock and digitizing an idle state detection signal output from the idle detector, and a decoder for determining the time interval of the idle state according to the digitized value of the counter. Also, the residual gap detection means comprises an isochronous gap detector for indicating the start of the isochronous data and detecting an isochronous gap having a predetermined first time interval, a residual gap detector for indicating the start of the residual bandwidth and detecting the residual gap having a second predetermined time interval which is larger than the first time interval, a subaction gap detector for indicating the start of an asynchronous transfer phase and detecting a subaction gap having a third predetermined time interval which is larger than the second predetermined time interval, and an arbitration reset gap detector for indicating that arbitration reset is requested and detecting an arbitration reset gap having a fourth predetermined time interval which is larger than the third predetermined time interval.
Also, when a time interval between the time interval of the isochronous gap and the time interval of the subaction gap is T and an arbitrary integer larger than 1 is N, the clock signal output from the clock signal generator has a period of T/N.
In order to achieve the third object of the present invention, there is provided an isochronous data transfer method realized in a variable isochronous data transfer apparatus including a variable isochronous transfer buffer (VITF), a constant isochronous transfer buffer (CITF), and an asynchronous transfer buffer (ATF), for isochronously transferring data within a predetermined time on the IEEE 1394 bus, comprising the steps of transferring isochronous data through the CITF in an isochronous phase, transferring ABR data through the VITF in a variable isochronous phase, moving the portion corresponding to minimum bandwidth (MBW) in the ABR data output through the VITF from the VITF to the CITF and transferring the portion corresponding to the MBW through the CITF in the isochronous phase, and transferring asynchronous data through the ATF in an asynchronous phase.
In order to achieve the fourth object of the present invention, there is provided an isochronous data transfer apparatus for isochronously transferring data within a predetermined time interval on the IEEE 1394 bus, comprising a constant isochronous transfer buffer (CITF) for storing and outputting isochronous data in a first-in first-out (FIFO) manner in order to transfer the isochronous data in an isochronous phase, a variable isochronous transfer buffer (VITF) for storing and outputting ABR data in the FIFO manner in order to transfer the ABR data in a variable isochronous phase, feed-back means for moving the portion corresponding to the MBW in the ABR data output through the VITF from the VITF to the CITF and transferring the portion corresponding to the MBW through the CITF in the isochronous phase, and an asynchronous transfer buffer (AFT) for storing and outputting asynchronous data in the FIFO manner in order to transfer the asynchronous data in an asynchronous phase.
In order to achieve the fifth object of the present invention, there is provided a variable data transfer method for isochronously transferring data within a predetermined time on the IEEE 1394 bus, comprising the steps of (a) determining that isochronous transfer of data is terminated when the bus is in an idle state for a time interval longer than an isochronous gap period and detecting a residual gap having a first predetermined time interval which is larger than the time interval of the isochronous gap and smaller than the time interval of a subaction gap, (b) determining whether the detected gap is an isochronous reset gap having a second predetermined time interval which is larger than the first predetermined time interval and smaller than the time interval of the subaction gap, (c) enabling an isochronous arbitration reset bit when the detected gap is determined to be the isochronous reset gap in the determination step, (d) determining whether the isochronous reset bit is enabled when it is determined that the detected gap is not the isochronous reset gap in the determination step and proceeding the process to an asynchronous phase, (e) determining whether real-time transfer packets exist, (f) checking timing when real-time transfer packets exist in the step (e), throwing away the packets which deviate from a real-time reference, and transferring the packets which do not deviate from the real-time reference, (g) determining whether bandwidth is sufficient with respect to packets which are not real-time packets and packets which are real-time packets and do not deviate from the real-time reference, and performing arbitration with respect to real time packets and packets which are not real-time, (h) transferring the packets when the arbitration is successful, and (i) transiting a phase to the asynchronous phase.
In order to achieve the sixth object of the present invention, there is provided an isochronous data transfer apparatus for isochronously transferring data within a predetermined time interval on the IEEE 1394 bus, comprising means for determining that isochronous transfer of data is terminated when the bus is in an idle state for a time interval longer than an isochronous gap period and detecting a residual gap having a first predetermined time interval which is larger than the time interval of the isochronous gap and smaller than the time interval of a subaction gap, means for determining whether the detected gap is an isochronous reset gap having a second predetermined time interval which is larger than the first predetermined time interval and smaller than the time interval of the subaction gap, means for enabling an isochronous arbitration reset bit when the detected gap is determined to be the isochronous reset gap by the detection means, means for determining whether the isochronous reset bit is enabled when it is determined that the detected gap is not the isochronous reset gap by the determination means and driving an asynchronous transfer mode when the isochronous reset bit is not enabled, means for determining whether real-time transfer packets exist, means for checking timing when real-time transfer packets exist, throwing away the packets which deviate from a real-time reference, and transferring the packets which do not deviate from the real-time reference, means for determining whether bandwidth is sufficient with respect to packets which are not real-time packets and packets which are real-time packets and do not deviate from the real-time reference, means for transferring the packets when the arbitration is successful, and means for performing asynchronous transfer of data.